﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Gerencial_Fisio_Nutry.Tela
{
    public partial class Pedido : Form
    {
        int position = 0;
        public int procura = -1;
        public Logica.Pedido[] pedido; 
        public Pedido()
        {
            InitializeComponent();
        }   
        private void btConsProd_Click(object sender, EventArgs e)
        {
            try
            {
                int i = Convert.ToInt16(tbCliente.Text);
                pedido = new Banco.MetodoBanco().carregarPedidoByCliente(i);
               
                carregarTela(pedido);
                tbNomeCli.Text  = pedido[0].pessoa.nome;
            }
            catch { }

        }
        public void carregarTela(Logica.Pedido[] pedido)
        {
            lvPedido.Items.Clear();
            for (int i = 0; i < pedido.Length; i++)
            {
                lvPedido.Items.Add(pedido[i].cod_pedido.ToString("0000"));
                lvPedido.Items[i].SubItems.Add(pedido[i].pessoa.cod_pessoa.ToString("0000"));
                lvPedido.Items[i].SubItems.Add(pedido[i].pessoa.nome.ToString());
                lvPedido.Items[i].SubItems.Add(pedido[i].funcionario.pessoa.nome.ToString());
                lvPedido.Items[i].SubItems.Add(pedido[i].dataPedido.ToShortDateString());
                lvPedido.Items[i].SubItems.Add(pedido[i].valorTotal.ToString("0.00"));
                carregarItens(pedido[i].cod_pedido);
            }
        }
        public void carregarItens(int cod_pedido)
        {
            lvInfo.Items.Clear();
            foreach (Logica.Pedido ped in pedido)
                if (ped.cod_pedido == cod_pedido)
                    for (int i = 0; i < ped.itens.Count; i++) {
                        lvInfo.Items.Add(ped.itens[i].produto.cod_Produto.ToString("0000"));
                        lvInfo.Items[i].SubItems.Add(ped.itens[i].produto.referencia.ToString());
                        lvInfo.Items[i].SubItems.Add(ped.itens[i].produto.descricao.ToString());
                        lvInfo.Items[i].SubItems.Add(ped.itens[i].quantidadeItem.ToString());
                        lvInfo.Items[i].SubItems.Add(ped.itens[i].precoSaida.ToString("0.00"));
                        lvInfo.Items[i].SubItems.Add(ped.itens[i].descontoAplicado.ToString());
                        lvInfo.Items[i].SubItems.Add((ped.itens[i].quantidadeItem *
                            (ped.itens[i].precoSaida - (ped.itens[i].descontoAplicado * ped.itens[i].precoSaida))).ToString("0.00"));
                    }
        }
        private void lvPedido_Click(object sender, EventArgs e)
        {
            position = int.Parse(lvPedido.FocusedItem.SubItems[0].Text);
            carregarItens(position);
        }
        private void adicionarUmToolStripMenuItem_Click(object sender, EventArgs e)
        {
            procura = (lvPedido.FocusedItem.Index);
            this.Close();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int i = Convert.ToInt16(tbFornecedor.Text);
                pedido = new Banco.MetodoBanco().carregarPedidoByRevendedor(i);

                carregarTela(pedido);
                tbNomeReve.Text = pedido[0].pessoa.nome;
            }
            catch { }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                int i = Convert.ToInt16(tbCodpedido.Text);
                pedido = new Banco.MetodoBanco().carregarPedidoByCodPedido(i);

                carregarTela(pedido);
            }
            catch { }
        }
        private void button4_Click(object sender, EventArgs e)
        {
                position = 0;
        procura = -1;
            this.Close();
        }
        private void tbCodpedido_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (13))
            {
                button3_Click(sender, null);
            }
        }
        private void tbCliente_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (13))
            {
                btConsProd_Click(sender, null);
            }
        }
        private void tbFornecedor_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (13))
            {
                button1_Click(sender, null);
            }
        }


    }
}

